package com.itheima.api.treeset.demo04;

public class Student implements Comparable<Student> {

    private String name ;

    private int chineseScore ;

    private int mathScore ;

    private int englishScore ;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getChineseScore() {
        return chineseScore;
    }

    public void setChineseScore(int chineseScore) {
        this.chineseScore = chineseScore;
    }

    public int getMathScore() {
        return mathScore;
    }

    public void setMathScore(int mathScore) {
        this.mathScore = mathScore;
    }

    public int getEnglishScore() {
        return englishScore;
    }

    public void setEnglishScore(int englishScore) {
        this.englishScore = englishScore;
    }

    // 为了方便的获取总分，因此我们需要提供了一个方法
    public int getTotal() {
        return this.chineseScore +  this.mathScore + this.englishScore ;
    }

    @Override
    public int compareTo(Student o) {

        /**
         * 需求是按照总分的从高到底进行排序，因此总分就是我们的主要条件，但是总分相同，能说明是同一个对象吗？不能
         * 总分比较完毕以后，我们可能还需要比较姓名 ， 数学成绩 ， 语文成绩 ， 英语成绩
         */
        int result1 = o.getTotal() - this.getTotal() ;
        int result2 = result1 == 0 ? o.getChineseScore() - this.getChineseScore() : result1 ;
        int result3 = result2 == 0 ? o.getMathScore() - this.getMathScore() : result2 ;
        int result4 = result3 == 0 ? o.getName().compareTo(this.getName()) : result3 ;

        // 返回
        return result4;
    }
}
